package setorEmpresa;
// Generated 21/08/2011 22:49:20 by Hibernate Tools 3.2.1.GA

import funcionario.Funcionario;
import empresa.Empresa;
import java.util.HashSet;
import java.util.Set;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.Table;

/**
 * SetorEmpresa generated by hbm2java
 */
@Entity
@Table(name = "setor_empresa", schema = "public")
public class SetorEmpresa implements java.io.Serializable {

    private int idSetorEmpresa;
    private Empresa empresa;
    private String descricaoSetor;
    private String centroCusto;
    private boolean statusSetorEmpresa;
    private Set<Funcionario> funcionarios = new HashSet<Funcionario>(0);

    public SetorEmpresa() {
    }

    public SetorEmpresa(int idSetorEmpresa) {
        this.idSetorEmpresa = idSetorEmpresa;
    }

    public SetorEmpresa(int idSetorEmpresa, Empresa empresa, String descricaoSetor, String centroCusto, boolean statusSetorEmpresa, Set<Funcionario> funcionarios) {
        this.idSetorEmpresa = idSetorEmpresa;
        this.empresa = empresa;
        this.descricaoSetor = descricaoSetor;
        this.centroCusto = centroCusto;
        this.statusSetorEmpresa = statusSetorEmpresa;
        this.funcionarios = funcionarios;
    }

    @Id
    @Column(name = "id_setor_empresa", unique = true, nullable = false)
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    public int getIdSetorEmpresa() {
        return this.idSetorEmpresa;
    }

    public void setIdSetorEmpresa(int idSetorEmpresa) {
        this.idSetorEmpresa = idSetorEmpresa;
    }

    @ManyToOne(fetch = FetchType.EAGER)
    @JoinColumn(name = "id_empresa")
    public Empresa getEmpresa() {
        return this.empresa;
    }

    public void setEmpresa(Empresa empresa) {
        this.empresa = empresa;
    }

    @Column(name = "descricao_setor", length = 100)
    public String getDescricaoSetor() {
        return this.descricaoSetor;
    }

    public void setDescricaoSetor(String descricaoSetor) {
        this.descricaoSetor = descricaoSetor;
    }

    @Column(name = "centro_custo", length = 20)
    public String getCentroCusto() {
        return this.centroCusto;
    }

    public void setCentroCusto(String centroCusto) {
        this.centroCusto = centroCusto;
    }
    
    @Column(name = "status_setor_empresa")
    public boolean getStatusSetorEmpresa() {
        return this.statusSetorEmpresa;
    }

    public void setStatusSetorEmpresa(boolean statusSetorEmpresa) {
        this.statusSetorEmpresa = statusSetorEmpresa;
    }
    
    @OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY, mappedBy = "setorEmpresa")
    public Set<Funcionario> getFuncionarios() {
        return this.funcionarios;
    }

    public void setFuncionarios(Set<Funcionario> funcionarios) {
        this.funcionarios = funcionarios;
    }
}
